home *** CD-ROM | disk | FTP | other *** search
/ NOVA - For the NeXT Workstation / NOVA - For the NeXT Workstation.iso / SourceCode / AdobeExamples / NX_ImportAdv / epsfwraps.psw < prev    next >
Text File  |  1992-12-19  |  3KB  |  83 lines

  1.  
  2. /*
  3.  * (a)  (C) 1990 by Adobe Systems Incorporated. All rights reserved.
  4.  *
  5.  * (b)  If this Sample Code is distributed as part of the Display PostScript
  6.  *    System Software Development Kit from Adobe Systems Incorporated,
  7.  *    then this copy is designated as Development Software and its use is
  8.  *    subject to the terms of the License Agreement attached to such Kit.
  9.  *
  10.  * (c)  If this Sample Code is distributed independently, then the following
  11.  *    terms apply:
  12.  *
  13.  * (d)  This file may be freely copied and redistributed as long as:
  14.  *    1) Parts (a), (d), (e) and (f) continue to be included in the file,
  15.  *    2) If the file has been modified in any way, a notice of such
  16.  *      modification is conspicuously indicated.
  17.  *
  18.  * (e)  PostScript, Display PostScript, and Adobe are registered trademarks of
  19.  *    Adobe Systems Incorporated.
  20.  * 
  21.  * (f) THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO
  22.  *    CHANGE WITHOUT NOTICE, AND SHOULD NOT BE CONSTRUED
  23.  *    AS A COMMITMENT BY ADOBE SYSTEMS INCORPORATED.
  24.  *    ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY
  25.  *    OR LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO
  26.  *    WARRANTY OF ANY KIND (EXPRESS, IMPLIED OR STATUTORY)
  27.  *    WITH RESPECT TO THIS INFORMATION, AND EXPRESSLY
  28.  *    DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY, 
  29.  *    FITNESS FOR PARTICULAR PURPOSES AND NONINFRINGEMENT
  30.  *    OF THIRD PARTY RIGHTS.
  31.  */
  32.  
  33. /*
  34.  *    epsfwraps.psw
  35.  *
  36.  *    Version:    2.0
  37.  *    Author:    Ken Fromm
  38.  *    History:
  39.  *            03-07-91        Added this comment.
  40.  */
  41.  
  42. /*  Sets the state for inclusion. */
  43. defineps PSWBeginEpsf()
  44.     /EPSFsave save def                    % Save state for cleanup
  45.     /EPSFcountdict countdictstack def        % Count objects on dict stack
  46.     /EPSFcount count 1 sub def                % Count objects on operand stack
  47.     userdict begin                            % Push userdict on dict stack
  48.     /showpage { } def                        % Redefine showpage, { } = null proc
  49.     0 setgray  0 setlinecap                    % Prepare graphics state
  50.     1 setlinewidth 0 setlinejoin
  51.     10 setmiterlimit [ ] 0 setdash newpath
  52.     /languagelevel  where                    % If level not equal to 1 then
  53.     {pop languagelevel                    % set strokeadjust and
  54.     1 ne                                    % overprint to their defaults
  55.         {false setstrokeadjust false setoverprint
  56.         } if
  57.     } if
  58. endps
  59.  
  60. /*  Resets the state after inclusion. */
  61. defineps PSWEndEpsf()
  62.     count EPSFcount sub { pop} repeat        % Clean up stacks
  63.     countdictstack EPSFcountdict sub {end} repeat
  64.     EPSFsave restore    
  65. endps
  66.  
  67. /*
  68. *    Positions the Epsf file within the document. The first four
  69. *    floats are the origin and size within the document. The next
  70. *    four are the original origin and size. The Angle is the 
  71. *    amount of rotation in degrees.
  72. */
  73. defineps PSWSetEpsf(float  OriginX, OriginY, Width, Height,
  74.         OrigOriginX, OrigOriginY, OrigWidth, OrigHeight, Angle)
  75.     OriginX OriginY translate
  76.     Angle rotate
  77.     Width OrigWidth div Height OrigHeight div scale
  78.     OrigOriginX neg OrigOriginY neg translate
  79.     OrigOriginX OrigOriginY OrigWidth OrigHeight rectclip
  80. endps
  81.  
  82.  
  83.